﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;

namespace EcoSystem
{
    public interface INotificationAppService : ICrudAppService<
        NotificationDto,
        Guid,
        GetNotificationInput,
        CreateOrUpdateNotificationDto,
        CreateOrUpdateNotificationDto>
    {
        /// <summary>
        /// 
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<List<NotificationDto>> CreateManyAsync(List<CreateOrUpdateNotificationDto> input);

        /// <summary>
        /// 获取所有
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public Task<List<NotificationDto>> GetAllListAsync(GetNotificationInput input);

        /// <summary>
        /// 设置为已读
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public Task SetReadAsync(Guid id);

        /// <summary>
        /// 全部设置为已读
        /// </summary>
        /// <returns></returns>
        public Task<int> ReadAllAsync();

        /// <summary>
        /// 清空消息数据
        /// </summary>
        /// <returns></returns>
        public Task<int> ClearAllAsync();
    }

}
